def hold_retrieve_1():
  """ SipPhone1 call to SipPhone2,  SipPhone2 hold, SipPhone2 internal  call to SipPhone3, rel. SipPhone2, SipPhone2 retrieve, rel. SipPhone1"""
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone2.HoldCall()
  SipPhone2.MakeCall(DN3)
  SipPhone3.AnswerCall()
  SipPhone2.ReleaseCall()
  SipPhone2.RetrieveCall()
  SipPhone1.ReleaseCall()


def hold_retrieve_2():
  """ Inbound call to SipPhone1,  SipPhone1 hold, SipPhone1 internal  call to SipPhone2, rel. SipPhone1, SipPhone1 retrieve, rel.ExtDn"""
  Ext1SipPhone1.MakeCall(DN1)
  SipPhone1.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone1.ReleaseCall()

def hold_retrieve_3():
  """ Outbound call SipPhone1 to ExtDN,  SipPhone1 hold, SipPhone1 intern. call to SipPhone2, rel. SipPhone1, SipPhone1 retrieve, rel.ExtDn"""
  SipPhone1.MakeCall(Ext1DN2)
  Ext1SipPhone2.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone2.ReleaseCall()

def hold_retrieve_4():
  """ SipPhone1 call to SipPhone2,  SipPhone2 hold, SipPhone2 outbound call , rel. SipPhone2, SipPhone2 retrieve, rel. SipPhone1"""
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone2.HoldCall()
  SipPhone2.MakeCall(Ext1DN2)
  Ext1SipPhone2.AnswerCall()
  SipPhone2.ReleaseCall()
  SipPhone2.RetrieveCall()
  SipPhone1.ReleaseCall()
  

def hold_retrieve_5():
  """ Inbound call to SipPhone1,  SipPhone1 hold, SipPhone1 outbound  call,SipPhone1 retrieve, rel.ExtDn"""
  Ext1SipPhone1.MakeCall(DN1)
  SipPhone1.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(Ext1DN2)
  Ext1SipPhone2.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone1.ReleaseCall()

def hold_retrieve_6():
  """ SipPhone1 call to SipPhone2,  SipPhone2 hold, SipPhone2 unsuccesful intern. call to SipPhone3, SipPhone2 retrieve, rel. SipPhone1"""
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone2.HoldCall()
  SipPhone2.MakeCall(DN3)
  SipPhone2.ReleaseCall()
  SipPhone2.RetrieveCall()
  SipPhone1.ReleaseCall()

def hold_retrieve_7():
  """ Inbound call to SipPhone1,  SipPhone1 hold,  SipPhone1 unsuccesful intern. call to SipPhone2, SipPhone1 retrieve, rel.ExtDn"""
  Ext1SipPhone1.MakeCall(DN1)
  SipPhone1.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN2)
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone1.ReleaseCall()

def hold_retrieve_8():
  """ Outbound call SipPhone1 to ExtDN,  SipPhone1 hold, SipPhone1 unsuccesful intern. call,SipPhone1 retrieve, rel.ExtDn"""
  SipPhone1.MakeCall(Ext1DN2)
  Ext1SipPhone2.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN2)
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone2.ReleaseCall()

def hold_retrieve_9():
  """ SipPhone1 call to SipPhone2,  SipPhone2 hold, SipPhone2 unsuccesful outbound call, SipPhone2 retrieve, rel. SipPhone1"""
  SipPhone1.MakeCall(DN2)
  SipPhone2.AnswerCall()
  SipPhone2.HoldCall()
  SipPhone2.MakeCall(Ext1DN2)
  SipPhone2.ReleaseCall()
  SipPhone2.RetrieveCall()
  SipPhone1.ReleaseCall()

def hold_retrieve_10():
  """ Inbound call to SipPhone1,  SipPhone1 hold,SipPhone1 unsuccesful outbound call,SipPhone1 retrieve, rel.ExtDn"""
  Ext1SipPhone1.MakeCall(DN1)
  SipPhone1.AnswerCall()
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(Ext1DN2)
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  Ext1SipPhone1.ReleaseCall()


def hold_retrieve_11():
  """Internal call, originator hold"""
  SipPhone1.MakeCall(DN2)
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN3)
  SipPhone3.AnswerCall()
  SipPhone2.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone2.ReleaseCall()

  
def hold_retrieve_12():
  SipPhone1.MakeCall(DN2)
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN3)
  SipPhone3.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone2.AnswerCall()
  SipPhone1.RetrieveCall()
  SipPhone2.ReleaseCall()

def hold_retrieve_13():
  SipPhone1.MakeCall(DN2)
  SipPhone1.HoldCall()
  SipPhone1.MakeCall(DN3)
  SipPhone3.AnswerCall()
  SipPhone1.ReleaseCall()
  SipPhone1.RetrieveCall()
  SipPhone2.AnswerCall()
  SipPhone2.ReleaseCall()




